package by.yakusekmaxim.bookgid.dataaccess;

import java.util.List;

import javax.persistence.metamodel.SingularAttribute;

import by.yakusekmaxim.bookgid.dataaccess.util.Filter;
import by.yakusekmaxim.bookgid.datamodel.Author;

public interface AuthorDao extends AbstractDao<Long, Author> {

	Long getCount();

	Long getCount(final SingularAttribute<Author, ?> attribute,
			Object value);
	
	List<Author> getAllAuthor(final SingularAttribute<Author, ?> attribute, Object value);

	List<Author> getAllAuthor(SingularAttribute<Author, ?> attribute,
			boolean ascending, int startRecord, int pageSize);

	List<Author> getAllAuthor(SingularAttribute<Author, ?> attribute,
			boolean ascending, int startRecord, int pageSize,
			Filter<Author> filter);
}
